실시간 전송 프로토콜
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
실시간 전송 프로토콜(RTP)은 스트리밍 미디어의 실시간 전송을 위해 설계된 프로토콜로, 지터 보상, 패킷 손실 및 아웃 오브 오더 딜리버리 감지 기능을 제공한다. RTP는 IP 네트워크에서 오디오/비디오 전송의 표준으로 사용되며, RTP와 RTCP(RTP 제어 프로토콜) 두 가지 프로토콜로 구성된다. RTP는 멀티미디어 데이터 전송, 타임스탬프, 시퀀스 번호, 페이로드 형식 정보를 제공하며, RTCP는 QoS 피드백 및 동기화를 담당한다. RTP는 인터넷 전화(VoIP), IP 기반 오디오, WebRTC 등 다양한 실시간 멀티미디어 애플리케이션에 활용된다. RTP는 스트림 전송, 순서 제어, 타임스탬프, 페이로드 형식, 멀티캐스트 지원 등의 기능을 제공하며, IETF에서 표준화되었다.
더 읽어볼만한 페이지
- 스트리밍 - 페이스북 워치
페이스북 워치는 페이스북에서 제공하는 주문형 비디오 서비스로, 오리지널 프로그램과 라이선스 콘텐츠를 제공하며 광고 수익을 창출한다. - 스트리밍 - 콘텐츠 전송 네트워크
콘텐츠 전송 네트워크(CDN)는 지리적으로 분산된 서버 네트워크를 이용하여 사용자에게 콘텐츠를 효율적으로 전송하는 시스템으로, 엣지 서버 캐싱, 데이터 전송 시간 단축, 대역폭 비용 절감, 가용성 향상 등의 이점을 제공하지만 보안 및 개인 정보 보호, 특정 업체 의존성 등의 과제도 존재한다. - VoIP 프로토콜 - VoiceXML
VoiceXML은 음성 브라우저에게 음성 합성, 자동 음성 인식, 대화 관리, 오디오 재생을 지시하는 XML 기반 마크업 언어로서, 다양한 산업 분야에서 음성 인터페이스 구축에 사용되었으며, 관련 표준과 함께 1999년 개발 후 W3C로 표준 관리가 이관되었으나 현재는 새로운 표준 개발이 중단되었다. - VoIP 프로토콜 - T.38
T.38은 IP 네트워크를 통해 팩스를 전송하는 프로토콜로, T.30 프로토콜을 기반으로 하며 스푸핑, 데이터 중복 기술을 사용하여 네트워크 문제를 해결하고, CNG, CED 신호와 이미지 데이터를 UDP 또는 TCP로 중계한다. - 응용 계층 프로토콜 - D-Bus
D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다. - 응용 계층 프로토콜 - RADIUS
RADIUS는 네트워크 접근 관리에 사용되는 AAA 프로토콜로, 클라이언트-서버 모델을 기반으로 사용자 인증 및 권한 부여를 수행하며 다양한 환경에서 활용된다.
실시간 전송 프로토콜 | |
---|---|
프로토콜 정보 | |
명칭 | 실시간 전송 프로토콜 |
약칭 | RTP |
목적 | 오디오 및 비디오 전송 |
개발자 | IETF 오디오-비디오 전송 워킹 그룹 |
발표일 | 1996년 1월 |
기반 프로토콜 | 네트워크 음성 프로토콜 |
관련 RFC | RFC 1889 RFC 3550 RFC 3551 |
2. 역사
패킷 교환 네트워크를 통한 오디오 및 비디오 연구는 1970년대 초로 거슬러 올라간다. 인터넷 엔지니어링 태스크 포스(IETF)는 1977년에 IETF RFC 741을 발표했고, 1992년에 RTP 개발을 시작했으며, 세션 발표 프로토콜(SAP), 세션 설명 프로토콜(SDP), 세션 시작 프로토콜(SIP)을 개발하게 된다.
RTP는 스트리밍 미디어의 종단 간(end-to-end) 실시간 전송을 위해 설계된 프로토콜이다. IP 네트워크 상에서 사용자 데이터그램 프로토콜(UDP)을 기반으로 동작하며, 지터 보상, 패킷 손실 및 순서가 뒤바뀐 전달 감지 기능을 제공한다.[38] 또한, IP 멀티캐스트를 통해 여러 대상에게 데이터를 전송할 수 있다.[2]
RTP는 종단간 실시간 스트리밍 미디어 전송을 위해 설계되었다. 이 프로토콜은 특히 IP 네트워크에서 UDP 전송 중에 흔히 발생하는 지터 보상 및 패킷 손실 및 순서가 뒤바뀐 전달 감지 기능을 제공한다. RTP는 IP 멀티캐스트를 통해 여러 대상에 데이터 전송을 허용한다.[2] RTP는 IP 네트워크에서 오디오/비디오 전송을 위한 주요 표준으로 간주되며, 관련 프로필 및 페이로드 형식과 함께 사용된다.[8] RTP의 설계는 운영 체제의 프로토콜 스택이 아닌 애플리케이션에서 프로토콜 기능이 구현되는 응용 계층 프레이밍으로 알려진 아키텍처 원칙을 기반으로 한다.
실시간 멀티미디어 스트리밍 애플리케이션은 정보의 적시 전달을 필요로 하며, 이러한 목표를 달성하기 위해 때로는 약간의 패킷 손실을 허용할 수 있다. 예를 들어, 오디오 애플리케이션에서 패킷 손실이 발생하면 오디오 데이터의 몇 분의 1초가 손실될 수 있으며, 이는 적절한 오류 은폐 알고리즘으로 감지할 수 없도록 만들 수 있다.[3] 전송 제어 프로토콜(TCP)는 RTP 사용에 대해 표준화되었지만,[4] TCP는 적시성보다 안정성을 선호하므로 일반적으로 RTP 애플리케이션에서는 사용되지 않는다. 대신, 대부분의 RTP 구현은 사용자 데이터그램 프로토콜(UDP)을 기반으로 구축된다.[3]
RTP는 IETF 표준화 기구의 오디오/비디오 전송 워킹 그룹에서 개발되었다. RTP는 H.323 및 RTSP와 같은 다른 프로토콜과 함께 사용된다.[8]
3. 프로토콜의 기능 및 특징
RTP는 인터넷 전화(VoIP), IP 기반 오디오, WebRTC, IPTV 등 실시간 멀티미디어 애플리케이션에서 널리 사용된다. H.323, RTSP와 같은 다른 프로토콜과 함께 사용되며, 데이터 전송을 위해 RTP를, 제어 정보 및 QoS(서비스 품질) 매개변수 전송을 위해 RTCP(RTP 제어 프로토콜)를 사용한다.[44][45]
RTP는 애플리케이션 레이어 프레이밍 원칙에 따라 설계되어, 프로토콜 기능이 운영 체제의 프로토콜 스택이 아닌 애플리케이션에 구현된다.
RTP는 다음과 같은 주요 기능을 제공한다.
RTP는 전송 제어 프로토콜(TCP) 대신 사용자 데이터그램 프로토콜(UDP)를 주로 사용하는데, 이는 TCP가 신뢰성을 우선시하는 반면, RTP는 실시간성을 더 중요하게 생각하기 때문이다.[39]
colspan="2" | | UDP | RTP/UDP | TCP | |
---|---|---|---|---|
애플리케이션 간 통신 | ✔ | ✔ | ✔ | |
패킷 트랜잭션 | ✔ | ✔ | ✔ | |
스트림 통신 | - | ✔ | ✔ | |
순서 제어 | ||||
rowspan="2" | | 도착 순서 보장 | - | -[28] | ✔ |
시퀀스 순서 복원 | - | ✔[29] | ✔ | |
도달 보장 | - | -[30] | ✔ |
3. 1. 스트림 전송
RTP는 스트리밍 미디어의 종단 간, 실시간 전송을 위해 설계되었다. 이 프로토콜은 지터 보상, 패킷 손실, 아웃 오브 오더 딜리버리(특히 IP 네트워크에서 UDP 전송 시 일반적임)의 감지 기능을 제공한다. RTP는 IP 멀티캐스트를 통해 여러 장소에 데이터를 전송할 수 있게 한다.[38] RTP는 IP 네트워크에서 오디오/비디오 전송의 주된 표준으로 간주되며 연관 프로파일 및 페이로드 포맷과 함께 사용된다.[44] RTP의 설계는 애플리케이션 레이어 프레이밍이라는 구조적 원칙에 기반을 두며, 프로토콜 기능들이 운영 체제의 프로토콜 스택이 아닌 애플리케이션에 구현된다.실시간 멀티미디어 스트리밍 애플리케이션은 시기적절한 정보 전달을 요구하며, 이를 위해 일부 패킷 손실을 감수한다. 예를 들어 오디오 부분의 패킷 손실은 1초의 사소한 오디오 데이터 손실을 일으킬 수 있으나, 적절한 오류 은닉 알고리즘을 통해 눈치채지 못하게 만들 수 있다.[39] 전송 제어 프로토콜(TCP)이 RTP용으로 표준화되어 있지만,[40] TCP는 시기적절함보다 신뢰성을 우선시하기 때문에 RTP에 일반적으로 사용되지는 않는다. RTP 구현체들 다수는 TCP 대신 사용자 데이터그램 프로토콜(UDP)를 사용한다.[39] 멀티미디어 세션에 특화되어 설계된 다른 전송 프로토콜로는 SCTP[41], DCCP[42]가 있으나 2012년 기준으로 널리 사용되지는 않고 있다.[43]
RTP는 IETF 표준화 기구의 오디오/비디오 트랜스포트 워킹 그룹에 의해 개발되었다. RTP는 H.323, RTSP 등의 다른 프로토콜들과 결합하여 사용된다.[44] RTP 사양은 RTP와 RTCP 두 가지 프로토콜을 기술하고 있다. RTP는 멀티미디어 데이터 전송에 사용되며, RTCP는 제어 정보 및 QoS 변수를 주기적으로 송신하기 위해 사용된다.[45]
데이터 전송 프로토콜 RTP는 실시간 데이터를 전달한다. 이 프로토콜이 제공하는 정보에는 타임스탬프(동기화를 위해), 시퀀스 번호(패킷 손실 및 재정렬 감지를 위해), 데이터의 인코딩 포맷을 지시하는 페이로드 포맷이 포함된다.[46] 제어 프로토콜 RTCP는 미디어 스트림 간 QoS 피드백과 동기화에 사용된다. RTCP 트래픽 대역은 RTP에 비해 적은 편으로, 대개 약 5% 정도이다.[46][47]
RTP 세션은 일반적으로 H.323, 세션 개시 프로토콜(SIP), RTSP, 또는 징글(XMPP) 등 시그널링 프로토콜을 사용하여 통신 피어 간에 초기화된다. 이러한 프로토콜들은 세션 기술 프로토콜을 사용하여 세션의 변수를 지정할 수 있다.[48]
RTP 세션은 개별 멀티미디어 스트림별로 확립된다. 오디오와 비디오 스트림은 별도의 RTP 세션을 사용할 수 있으며, 수신기가 선별적으로 특정 스트림의 컴포넌트를 수신할 수 있게 만들어준다.[49] 세션 하나는 도착지 IP 주소 + RTP/RTCP 포트 쌍으로 구성된다. 사양에 따르면 RTP 포트 번호는 짝수로, 각각의 연관되는 RTCP 포트는 그다음 홀수 번호로 선정할 것을 권고한다.[53] 그러나 프로토콜 멀티플렉싱 상황에서는 RTP와 RTCP에 단일 포트가 선정된다.[50] RTP와 RTCP는 보통 특권이 없는 UDP 포트(1024 ~ 65535)를 사용하지만,[51] 프로토콜 설계가 전송에 독립적이므로 SCTP, DCCP 같은 다른 전송 프로토콜을 사용할 수도 있다.
3. 2. 순서 제어
RTP는 스트림 시퀀스 번호 기능을 제공하여 순서 제어를 가능하게 한다.[31] '''순서 번호'''(sequence number영어)는 RTP 패킷의 전송 순서를 나타내는 번호이다.[33] 초기값은 무작위로 설정된다.[34] 네트워크 혼잡, 부하 분산, 기타 예측 불가능한 네트워크 동작으로 인해 패킷은 지연되거나 순서가 뒤섞여 도착할 수 있다. 패킷 집합을 스트림으로 디코딩하려면 패킷 순서를 알아야 한다.3. 3. 타임스탬프
RTP 프로토콜은 동기화를 위한 타임스탬프 정보를 제공한다.[46] 데이터 전송 프로토콜인 RTP는 실시간 데이터를 전송하며, 타임스탬프, 패킷 손실 및 재정렬 감지를 위한 시퀀스 번호, 데이터의 인코딩된 형식을 나타내는 페이로드 형식을 포함한다.[9]3. 4. 페이로드 형식 (Payload Type)
RTP는 다양한 멀티미디어 형식을 전송하도록 설계되었으며, RTP 표준을 수정하지 않고도 새로운 형식을 개발할 수 있다. 이를 위해 프로토콜의 특정 애플리케이션에 필요한 정보는 일반 RTP 헤더에 포함되지 않는다. 각 애플리케이션 클래스(예: 오디오, 비디오)에 대해 RTP는 '프로필'과 관련 '페이로드 형식'을 정의한다.[15] 특정 애플리케이션에서 RTP를 사용하려면 프로필 및 페이로드 형식 사양이 필요하다.[16]프로필은 페이로드 데이터를 인코딩하는 코덱과 RTP 헤더의 프로토콜 필드 '페이로드 유형'(PT)에 대한 페이로드 형식 코드 매핑을 정의한다. 각 프로필에는 여러 페이로드 형식 사양이 함께 제공되며, 각 사양은 특정 인코딩된 데이터의 전송을 설명한다.[8] 오디오 페이로드 형식의 예로는 G.711, G.723, G.726, G.729, GSM, QCELP, MP3, DTMF가 있으며, 비디오 페이로드의 예로는 H.261, H.263, H.264, H.265 및 MPEG-1/MPEG-2가 있다.[17] MPEG-4 오디오/비디오 스트림을 RTP 패킷에 매핑하는 방법은 RFC 문서에 명시되어 있으며, H.263 비디오 페이로드는 다른 RFC 문서에 설명되어 있다.[18]
RTP 프로필의 예는 다음과 같다.
- '최소 제어 기능을 갖춘 오디오 및 비디오 컨퍼런스를 위한 RTP 프로필'(RFC 문서)은 고정 페이로드 유형 할당 집합과 세션 설명 프로토콜(SDP)을 사용하여 페이로드 형식과 PT 값 간의 매핑을 위한 동적 메커니즘을 정의한다.
- 보안 실시간 전송 프로토콜(SRTP) (RFC 문서)은 페이로드 데이터 전송을 위한 암호화 서비스를 제공하는 RTP 프로필을 정의한다.[19]
- 사물 인터넷 통신을 위한 실험적 'RTP용 제어 데이터 프로필'(RTP/CDP).[20]
3. 5. 멀티캐스트 지원
RTP는 IP 멀티캐스트를 통해 여러 대상에게 데이터를 전송할 수 있도록 한다.[38]4. 패킷 구조
...
...